package com.huatai.dataservice.panel.feign;

import com.huatai.dataservice.panel.common.query.ComQuery;
import com.huatai.dataservice.panel.panelModel.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.*;

import static com.huatai.common.constant.MicroServiceConstant.HT_DATASERVCIE;

@FeignClient(HT_DATASERVCIE)
public interface PanelClient {

	//阶段信息
	@PostMapping("panel/feign/selectSystemMessage")
	ResponseVo selectSystemMessage(@RequestBody ComQuery query);

	//回放-子平台运动
	@PostMapping("panel/feign/selectSubplatformMoveData")
	ResponseVo selectSubplatformMoveData(@RequestBody ComQuery query);

	//回放-平台下潜
	@PostMapping("panel/feign/selectPlatformMoveData")
	ResponseVo selectPlatformMoveData(@RequestBody ComQuery query);

	//回放-模型弹运动
	@PostMapping("panel/feign/selectProductMoveData")
	ResponseVo selectProductMoveData(@RequestBody ComQuery query);


	//回放-子平台工作模式
	@PostMapping("panel/feign/selectSubPlatformWorkMode")
	List<Map<String, Object>> selectSubPlatformWorkMode(@RequestBody ComQuery query);

	//回放-承载平台工作模式
	@PostMapping("panel/feign/selectPlatformWorkMode")
	List<Map<String, Object>> selectPlatformWorkMode(@RequestBody ComQuery query);

	//回放-模型弹状态
	@PostMapping("panel/feign/selectProductOperationStatus")
	ResponseVo selectProductOperationStatus(@RequestBody ComQuery query);

	//回放---选择实验接口
	@PostMapping("panel/feign/selectTrialInfo")
	ResponseVo selectTrialInfo(@RequestBody ComQuery query);

	@PostMapping("panel/feign/sendTestPreparation")
	InstructCommandVo sendTestPreparation(@RequestBody ComQuery query);

	@PostMapping("panel/feign/sendProducttransfer")
	InstructCommandVo sendProducttransfer(@RequestBody ComQuery query);

	@PostMapping("panel/feign/sendProducttransferAnimation")
	InstructCommandVo sendProducttransferAnimation(@RequestBody ComQuery query);

	@PostMapping("panel/feign/sendProductFilling")
	InstructCommandVo sendProductFilling(@RequestBody ComQuery query);

	@PostMapping("panel/feign/sendProductFillingAnimation")
	InstructCommandVo sendProductFillingAnimation(@RequestBody ComQuery query);

	@PostMapping("panel/feign/selectProjectInformation")
	ProjectInformationVo selectProjectInformation(@RequestBody ComQuery query);

	@PostMapping("panel/feign/selectProjectInformationSimulation")
	ProjectInformationVo selectProjectInformationTwo(@RequestBody ComQuery query);

	//回放-任务流程接口,根据阶段id查出不同阶段的流程图
	@PostMapping("panel/feign/selectTaskFlow")
	TaskFlowVo selectTaskFlow(@RequestBody ComQuery query);

	//回放-流程阶段
	@PostMapping("panel/feign/selectProcessStage")
	ResponseVo selectProcessStage();

	//产品基本信息接口
	@PostMapping("panel/feign/selectProductInfoSimulation")
	ResponseVo selectProductInfoTwo(@RequestBody ComQuery query);

	//产品基本信息接口
	@PostMapping("panel/feign/selectProductInfo")
	ResponseVo selectProductInfo(@RequestBody ComQuery query);

	//转运车辆信息接口
	@PostMapping("panel/feign/selectTransferCar")
	TransferCarVo selectTransferCar(@RequestBody ComQuery query);

	@PostMapping("panel/feign/selectTransferRealCar")
	ResponseVo selectTransferRealCar(@RequestBody ComQuery query);

	@PostMapping("panel/feign/selectMonitorPoints")
	ResponseVo selectMonitorPoints(@RequestBody ComQuery query);

	//装填设备信息接口
	@PostMapping("panel/feign/selectLoadEquipment")
	LoadEquipmentVo selectLoadEquipment(@RequestBody ComQuery query);

	//重力锚信息接口
	@PostMapping("panel/feign/selectAnchor")
	AnchorVo selectAnchor();

	//浮吊船只信息接口
	@PostMapping("/selectFloatShip")
	FloatShipVo selectFloatShip();

	//综合保障船只信息接口
	@PostMapping("panel/feign/selectShipInfo")
	ShipInfoVo selectShipInfo();

	//船只实时接口
	@PostMapping("panel/feign/selectShipRealInfo")
	ResponseVo selectShipRealInfo();


	//转运阶段视频接口
	@PostMapping("panel/feign/selectTransportVideo")
	TransportVideoVo selectTransportVideo(@RequestBody ComQuery query);

	//事前准备阶段视频接口1
	@PostMapping("panel/feign/selectPrepareVideoOne")
	TransportVideoVo selectPrepareVideoOne(@RequestBody ComQuery query);

	//事前准备阶段视频接口2
	@PostMapping("panel/feign/selectPrepareVideoTwo")
	TransportVideoVo selectPrepareVideoTwo(@RequestBody ComQuery query);

	//平台就位状态接口（实时）
	@PostMapping("panel/feign/selectPlatformStatus")
	ResponseVo selectPlatformStatus();

	//保障系统信息-下拉框接口（实时）
	@PostMapping("panel/feign/selectGuaranteeSystem")
	ResponseVo selectGuaranteeSystem();

	// 保障系统信息-列表接口（实时）
	@PostMapping("panel/feign/selectGuaranteeSystemList")
	ResponseVo selectGuaranteeSystemList(@RequestBody ComQuery query);

	//承载平台数据接口（实时）
	@PostMapping("panel/feign/selectLoadPlatform")
	ResponseVo selectLoadPlatform();

	@PostMapping("panel/feign/selectEnvironment")
	ResponseVo selectEnvironment();

	@PostMapping("panel/feign/selectModelBomb")
	ResponseVo selectModelBomb();

	//获取吸力锚信息
	@PostMapping("panel/feign/selectSuctionAnchorInfo")
	ResponseVo selectSuctionAnchorInfo(@RequestBody ComQuery query);

	@PostMapping("panel/feign/selectSuctionAnchorInfoSimulation")
	ResponseVo selectSuctionAnchorInfoSimulation(@RequestBody ComQuery query);

	@PostMapping("panel/feign/sendCutPhase")
	CutPhaseVo sendCutPhase(@RequestBody ComQuery query);

	// 回放---所有动画调用接口
	@PostMapping("panel/feign/sendAnimation")
	List<InstructCommandNewVo> sendAnimation(@RequestBody ComQuery query);


}
